package com.movie.db.util;

import java.util.Arrays;
import java.util.List;

import com.google.gson.Gson;
import com.movie.comm.utils.TextFileUtil;
import com.movie.entity.User;

/**
 * @ClassName: TextHelper
 * @Description: 文件数据操作类
 * @author 左岩
 * @date 2018年12月6日 下午2:06:26
 *
 */
public class TextHelper {
	//保存客户数据信息的文件路径
	private static String dataPath="data/UserData.txt";
	
	//读取文本中的数据
	public static String getData()
	{
		return TextFileUtil.read(dataPath);
	}
	
	
	/**
	 * 获取所有用户的方法
	* @Title: getAllUser 
	* @Description: TODO(描述这个方法的作用) 
	* @return List<User>    返回类型 
	* @throws 
	*/
	public static List<User> getAllUser(){
		List<User> userList;
		try {
			Gson gson = new Gson();
			String json = TextFileUtil.read(dataPath);
			User[] array = new Gson().fromJson(json,User[].class);
			 userList = Arrays.asList(array);
			return userList;
			} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
	
	/**
	* @Title: addUser 
	* @Description: 向文本中存入一个新的用户
	* @param  user   
	* @return void  
	* @throws 
	 */
	public static void addUser(User user){
		List<User> userList = getAllUser();
		userList.add(user);
		Gson gson = new Gson();
		String json = gson.toJson(userList);
		TextFileUtil.write(dataPath, false, json);
		
	}
	
	/**
	* @Title: getUserByUsernameOrEmail 
	* @Description: 根据用户的账号或者邮箱获取用户
	* @param  u 
	* @return User   如果系统中有该用户的账号和邮箱 返回该用户 如果没有则返回null
	* @throws 
	 */
	public static User getUserByUsernameOrEmail(User u){
		List<User> userList = getAllUser();
		for (User user : userList) {
			if(user.getUserEmail().equals(u.getUserEmail())||user.getUsername().equals(u.getUsername())){
				return user;
			}
		}
		return null;
	}
	
	/**
	 * 
	* @Title: deleteUserByUserId 
	* @Description: 根据用户的Id来删除该用户
	* @param  u    
	* @return void 空返回类型
	* @throws 
	 */
	public static void deleteUserByUserId(User u){
		List<User> userList = getAllUser();
		int i = 0;
		for (User user : userList) {
			if(user.getUserId()==u.getUserId()){
			  break;
			}
			i++;
		}
		userList.remove(i);
		//删除完后将跟新过后的数据重新保存到文件中
		Gson gson = new Gson();
		String json = gson.toJson(userList);
		TextFileUtil.write(dataPath, false, json);
	}
	
	

}
